package com.mnyc.research.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.mnyc.common.annotation.Excel;
import com.mnyc.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 教研组对象 jy_research_group
 *
 * @author wdy
 * @date 2025-08-06
 */
public class JyResearchGroup extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 学期
     */
    @Excel(name = "学期",dictType = "jy_semester")
    private String semester;

    /**
     * 学科
     */
    @Excel(name = "学科",dictType = "jy_subject")
    private String subject;

    /**
     * 年级
     */
    @Excel(name = "年级",dictType = "jy_grade")
    private String grade;

    /**
     * 名称
     */
    @Excel(name = "名称")
    private String name;

    /**
     * 停用:sys_yes_no
     */
    @Excel(name = "停用:sys_yes_no")
    private String state;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startDate;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endDate;

    /**
     * 部门Id
     */
    @Excel(name = "部门Id")
    private Long deptId;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    /**
     * 教师
     */
    @Excel(name = "教师")
    private String teacherNames;

    List<JyResearchGroupTeacher> teacherList;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setSemester(String semester) {
        this.semester = semester;
    }

    public String getSemester() {
        return semester;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public String getSubject() {
        return subject;
    }

    public void setGrade(String grade) {
        this.grade = grade;
    }

    public String getGrade() {
        return grade;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getState() {
        return state;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDelFlag(String delFlag) {
        this.delFlag = delFlag;
    }

    public String getDelFlag() {
        return delFlag;
    }

    public List<JyResearchGroupTeacher> getTeacherList() {
        return teacherList;
    }

    public void setTeacherList(List<JyResearchGroupTeacher> teacherList) {
        this.teacherList = teacherList;
    }

    public String getTeacherNames() {
        return teacherNames;
    }

    public void setTeacherNames(String teacherNames) {
        this.teacherNames = teacherNames;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("semester", getSemester())
                .append("subject", getSubject())
                .append("grade", getGrade())
                .append("name", getName())
                .append("state", getState())
                .append("startDate", getStartDate())
                .append("endDate", getEndDate())
                .append("deptId", getDeptId())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
